csscomputedvalues: Handle starting animations differently
authorBenjamin Otte <otte@redhat.com>
Sun, 16 Sep 2012 17:07:40 +0000 (19:07 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 17 Sep 2012 18:39:14 +0000 (20:39 +0200)
gtk/gtkcsscomputedvalues.c
gtk/gtkcsscomputedvaluesprivate.h
gtk/gtkstylecontext.c

index 283412404df5e2f863536baef073f1a908df06d7..f9ec618c97674f4dbaebebf9b20e96fe6c94bc04 100644 (file)
@@ -364,9 +364,9 @@ gtk_css_computed_values_find_transition (GtkCssComputedValues *values,
 }
 
 static void
-gtk_css_computed_values_start_transitions (GtkCssComputedValues *values,
-                                           gint64                timestamp,
-                                           GtkCssComputedValues *source)
+gtk_css_computed_values_create_css_transitions (GtkCssComputedValues *values,
+                                                gint64                timestamp,
+                                                GtkCssComputedValues *source)
 {
   TransitionInfo transitions[GTK_CSS_PROPERTY_N_PROPERTIES] = { { 0, } };
   GtkCssValue *durations, *delays, *timing_functions;
@@ -432,9 +432,9 @@ gtk_css_computed_values_find_animation (GtkCssComputedValues *values,
 }
 
 static void
-gtk_css_computed_values_start_css_animations (GtkCssComputedValues *values,
-                                              gint64                timestamp,
-                                              GtkStyleContext      *context)
+gtk_css_computed_values_create_css_animations (GtkCssComputedValues *values,
+                                               gint64                timestamp,
+                                               GtkStyleContext      *context)
 {
   GtkStyleProviderPrivate *provider;
   GtkCssValue *durations, *delays, *timing_functions, *animations;
@@ -487,18 +487,13 @@ gtk_css_computed_values_start_css_animations (GtkCssComputedValues *values,
 /* PUBLIC API */
 
 void
-_gtk_css_computed_values_start_animations (GtkCssComputedValues *values,
-                                           gint64                timestamp,
-                                           GtkCssComputedValues *source,
-                                           GtkStyleContext      *context)
+_gtk_css_computed_values_create_animations (GtkCssComputedValues *values,
+                                            gint64                timestamp,
+                                            GtkCssComputedValues *source,
+                                            GtkStyleContext      *context)
 {
-  GtkBitmask *ignore;
-
-  gtk_css_computed_values_start_transitions (values, timestamp, source);
-  gtk_css_computed_values_start_css_animations (values, timestamp, context);
-
-  ignore = _gtk_css_computed_values_advance (values, timestamp);
-  _gtk_bitmask_free (ignore);
+  gtk_css_computed_values_create_css_transitions (values, timestamp, source);
+  gtk_css_computed_values_create_css_animations (values, timestamp, context);
 }
 
 GtkBitmask *
index a79fc6c71fcc4511d9345ab205642718523f5189..32b70bc7230569385faffa2fd8abb9e1f196acdb 100644 (file)
@@ -88,7 +88,7 @@ GtkCssValue *           _gtk_css_computed_values_get_intrinsic_value  (GtkCssCom
 GtkBitmask *            _gtk_css_computed_values_get_difference       (GtkCssComputedValues     *values,
                                                                        GtkCssComputedValues     *other);
 
-void                    _gtk_css_computed_values_start_animations     (GtkCssComputedValues     *values,
+void                    _gtk_css_computed_values_create_animations    (GtkCssComputedValues     *values,
                                                                        gint64                    timestamp,
                                                                        GtkCssComputedValues     *source,
                                                                        GtkStyleContext          *context);
index 07cb1b412894b372c34bfa27dd8aac3c64583574..239dd55bb3b1e09bb4aba26ebf3f1d6b173ec82d 100644 (file)
@@ -3041,10 +3041,10 @@ gtk_style_context_should_animate (GtkStyleContext *context)
 }
 
 static void
-gtk_style_context_start_animations (GtkStyleContext      *context,
-                                    GtkCssComputedValues *values,
-                                    GtkCssComputedValues *previous,
-                                    gint64                timestamp)
+gtk_style_context_create_animations (GtkStyleContext      *context,
+                                     GtkCssComputedValues *values,
+                                     GtkCssComputedValues *previous,
+                                     gint64                timestamp)
 {
   if (!gtk_style_context_should_animate (context))
     {
@@ -3052,10 +3052,10 @@ gtk_style_context_start_animations (GtkStyleContext      *context,
       return;
     }
 
-  _gtk_css_computed_values_start_animations (values,
-                                             timestamp,
-                                             previous,
-                                             context);
+  _gtk_css_computed_values_create_animations (values,
+                                              timestamp,
+                                              previous,
+                                              context);
 
   if (_gtk_css_computed_values_is_static (values))
     {
@@ -3168,8 +3168,11 @@ _gtk_style_context_validate (GtkStyleContext  *context,
 
           data = style_data_lookup (context);
 
-          gtk_style_context_start_animations (context, data->store, current->store, timestamp);
-          change &= ~GTK_CSS_CHANGE_ANIMATE;
+          gtk_style_context_create_animations (context, data->store, current->store, timestamp);
+          if (_gtk_css_computed_values_is_static (data->store))
+            change &= ~GTK_CSS_CHANGE_ANIMATE;
+          else
+            change |= GTK_CSS_CHANGE_ANIMATE;
 
           changes = _gtk_css_computed_values_get_difference (data->store, current->store);
         }